﻿using System;
using System.Collections.Generic;
using System.Web.UI.WebControls;
using BLL;
using Model;
using CrystalDecisions.CrystalReports.Engine;

public partial class ProductAssemble_ViewAssemble_QCFixedCheck_QCFixedCheckViewbyPIDDT : System.Web.UI.Page
{
    private int count;

    private string var_productTypeID
    {
        get { return ViewState["productTypeID"].ToString(); }
        set { ViewState["productTypeID"] = value; }
    }
    private DateTime dt1
    {
        get { return DateTime.Parse(ViewState["dt1"].ToString()); }
        set { ViewState["dt1"] = value; }
    }
    private DateTime dt2
    {
        get { return DateTime.Parse(ViewState["dt2"].ToString()); }
        set { ViewState["dt2"] = value; }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindCustoms();
            BindProductTypes();
        }
    }

    protected void BindCustoms()
    {
        Customer cust = new Customer();
        this.DropDownList1.DataSource = cust.LoadEntities();
        this.DropDownList1.DataTextField = "CustomerName";
        this.DropDownList1.DataValueField = "CustomerID";
        this.DropDownList1.DataBind();
    }

    protected void BindProductTypes()
    {
        ProductType pt = new ProductType();
        this.DropDownList2.DataSource = pt.GetProductTypesbyCustomerID(this.DropDownList1.SelectedValue);
        this.DropDownList2.DataTextField = "ProductTypeName";
        this.DropDownList2.DataValueField = "ProductTypeID";
        this.DropDownList2.DataBind();
    }

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        BindProductTypes();
    }

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        this.GridView1.PageIndex = e.NewPageIndex;
        BindTests();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        dt1 = DateTime.Parse(this.TextBox1.Value.Trim());
        dt2 = DateTime.Parse(this.TextBox2.Value.Trim());
        var_productTypeID = this.DropDownList2.SelectedValue;
        //BindTests();
        IList<QCFixedCheckInfo> list = GetQData();
        BindQCR(list);
    }

    private void BindQCR(IList<QCFixedCheckInfo> list)
    {
        this.CrystalReportSource1.ReportDocument.Load(Server.MapPath("QCFixedCheckView.rpt"));

        TextObject txtTestTime = (TextObject)this.CrystalReportSource1.ReportDocument.ReportDefinition.ReportObjects["Text1"];
        txtTestTime.Text = dt1.ToString() + "-" + dt2.ToString();

        this.CrystalReportSource1.ReportDocument.SetDataSource(list);
        this.CrystalReportSource1.DataBind();
        this.CrystalReportViewer1.ReportSource = CrystalReportSource1;
        this.CrystalReportViewer1.DataBind();
        this.CrystalReportViewer1.Visible = true;
    }

    private IList<QCFixedCheckInfo> GetQData()
    {
        IList<QCFixedCheckInfo> oprs = new List<QCFixedCheckInfo>();
        QCFixedCheck pt = new QCFixedCheck();
        oprs = pt.GetQCFixedChecksbyPIDDT(var_productTypeID, dt1, dt2);
        return oprs;
    }

    private void BindTests()
    {
        QCFixedCheck test = new QCFixedCheck();
        IList<QCFixedCheckInfo> list = test.GetQCFixedChecksbyPIDDT(var_productTypeID, dt1, dt2);
        count = list.Count;
        GridView1.DataSource = list;
        GridView1.DataBind();
    }
}
